home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 331 / gemfsc14 / aessrc14 / aesform2.s < prev    next >
Text File  |  1989-04-06  |  2KB  |  70 lines

  1.  
  2. ;*========================================================================
  3. ;*
  4. ;* AESFAST Public Domain GEM bindings.
  5. ;*
  6. ;*  Maintenance:
  7. ;*   02/10/89 v1.10 - This file is new with this release.  These are the
  8. ;*                    two infamous 'undocumented' functions that have been
  9. ;*                    available in all versions of TOS, but nobody said so.
  10. ;*========================================================================
  11.  
  12.           .include  "aesfast.sh"
  13.           
  14. ;*************************************************************************
  15. ;*
  16. ;* Form Manager routines 2 of 3.
  17. ;*
  18. ;*************************************************************************
  19.  
  20. ;-------------------------------------------------------------------------
  21. ; form_button
  22. ;-------------------------------------------------------------------------
  23.  
  24. _form_button::
  25.           .cargs    #8,.ptree.l,.obj,.clicks,.pnxtobj.l
  26.  
  27.           link      a6,#-4
  28.           
  29.           AControl  56,2,2,1
  30.  
  31.           moveq.l   #-4,d2       
  32.           lea       .ptree(a6),a0       ; -> addrin
  33.           lea       .obj(a6),a1         ; -> intin
  34.           ACall     RET2HERE
  35.           moveq.l   #-4,d1
  36.           lea       .pnxtobj(a6),a1
  37.           jmp       (a0)
  38.           
  39. ;-------------------------------------------------------------------------
  40. ; form_keybd
  41. ;-------------------------------------------------------------------------
  42.  
  43. _form_keybd::
  44.           .cargs    #8,.ptree.l,.obj,.nxtobj,.thechar,.pnxtobj.l,.pchar.l
  45.  
  46.           link      a6,#-6
  47.                
  48.           move.l    .nxtobj(a6),d0      ; The order of nxtobj/thechar are
  49.           swap      d0                  ; reversed on the stack compared to
  50.           move.l    d0,.nxtobj(a6)      ; how they are in intin[]. Fix 'em.
  51.  
  52.           AControl  55,3,3,1
  53.  
  54.           moveq.l   #-6,d2       
  55.           lea       .ptree(a6),a0       ; -> addrin
  56.           lea       .obj(a6),a1         ; -> intin
  57.           ACall     RET2HERE
  58.  
  59.           move.l    .nxtobj(a6),d0      ; Since it isn't nice to trash the
  60.           swap      d0                  ; caller's stack parms, swap
  61.           move.l    d0,.nxtobj(a6)      ; nxtobj/thechar back how they were.
  62.  
  63.           moveq.l   #-6,d1
  64.           lea       .pnxtobj(a6),a1
  65.           jmp       (a0)
  66.  
  67. ;         end of code
  68.  
  69.  
  70.